factorial
Numbers Timm Sandbox Mar10 Revised

Computing Factorials]

Problem
=======

You want to compute the number of orderings in "_n_" numbers.

Solution
========

 function factorial(n,  out,i) {
     if (n < 1) 
         return 1;
     out = 1
     for(i=2;i<=n;i++) 
         out *= i
     return out
 }

Example
=======

    function Factorial(i) {
	for(i=1;i<=20;i++) 
	    print i " " factorial(i) 
    }

Input... 

  for(I=1;I<=20;I++) 
	print I " " factorial(I) 

Output... 

  1  1
  2  2
  3  6
  4  24
  5  120
  6  720
  7  5040
  8  40320
  9  362880
  10 3628800 
  11 39916800
  12 479001600
  13 6227020800
  14 87178291200
  15 1307674368000
  16 20922789888000
  17 355687428096000
  18 6402373705728000
  19 121645100408832000
  20 2432902008176640000

Discussion
==========

For some awks, gives wrong results for large _n_ (for gawk 3.1.7 on a
Mac, the problems starts at _n=21_). This does not happen with
other awks (like xgawk) that use the
MPFR library (multiple precision floating-point).

Author
======

Tim Menzies

